home *** CD-ROM | disk | FTP | other *** search
- /* --------------- system.h -------------- */
- #ifndef SYSTEM_H
- #define SYSTEM_H
- /* ----- interrupt vectors ----- */
- #define TIMER 8
- #define VIDEO 0x10
- #define KEYBRD 0x16
- #define DOS 0x21
- #define CRIT 0x24
- #define MOUSE 0x33
- /* ------- platform-dependent values ------ */
- #define FREQUENCY 100
- #define COUNT (1193280L / FREQUENCY)
- #define ZEROFLAG 0x40
- #define MAXSAVES 50
- #define SCREENWIDTH 80
- #define SCREENHEIGHT 25
- /* ----- keyboard BIOS (0x16) functions -------- */
- #define READKB 0
- #define KBSTAT 1
- /* ------- video BIOS (0x10) functions --------- */
- #define SETCURSORTYPE 1
- #define SETCURSOR 2
- #define READCURSOR 3
- #define READATTRCHAR 8
- #define WRITEATTRCHAR 9
- #define HIDECURSOR 0x20
- /* ------- the interrupt function registers -------- */
- typedef struct {
- int bp,di,si,ds,es,dx,cx,bx,ax,ip,cs,fl;
- } IREGS;
- /* ---------- cursor prototypes -------- */
- void curr_cursor(int *x, int *y);
- void cursor(int x, int y);
- void hidecursor(void);
- void unhidecursor(void);
- void savecursor(void);
- void restorecursor(void);
- void normalcursor(void);
- void set_cursor_type(unsigned t);
- void videomode(void);
- /* ---------- mouse prototypes ---------- */
- int mouse_installed(void);
- int mousebuttons(void);
- void get_mouseposition(int *x, int *y);
- void set_mouseposition(int x, int y);
- void show_mousecursor(void);
- void hide_mousecursor(void);
- int button_releases(void);
- void resetmouse(void);
- #define leftbutton() (mousebuttons()&1)
- #define rightbutton() (mousebuttons()&2)
- #define waitformouse() while(mousebuttons());
- /* ------------ timer macros -------------- */
- #define timed_out(timer) (timer==0)
- #define set_timer(timer, secs) timer=(secs)*182/10+1
- #define disable_timer(timer) timer = -1
- #define timer_running(timer) (timer > 0)
- #define countdown(timer) --timer
- #define timer_disabled(timer) (timer == -1)
-
- #ifdef MSC
- /* ============= MSC Compatibility Macros ============ */
- #define BLACK 0
- #define BLUE 1
- #define GREEN 2
- #define CYAN 3
- #define RED 4
- #define MAGENTA 5
- #define BROWN 6
- #define LIGHTGRAY 7
- #define DARKGRAY 8
- #define LIGHTBLUE 9
- #define LIGHTGREEN 10
- #define LIGHTCYAN 11
- #define LIGHTRED 12
- #define LIGHTMAGENTA 13
- #define YELLOW 14
- #define WHITE 15
-
- #define getvect(v) _dos_getvect(v)
- #define setvect(v,f) _dos_setvect(v,f)
- #define MK_FP(s,o) ((void far *) \
- (((unsigned long)(s) << 16) | (unsigned)(o)))
- #undef FP_OFF
- #undef FP_SEG
- #define FP_OFF(p) ((unsigned)(p))
- #define FP_SEG(p) ((unsigned)((unsigned long)(p) >> 16))
- #define poke(a,b,c) (*((int far*)MK_FP((a),(b))) = (int)(c))
- #define pokeb(a,b,c) (*((char far*)MK_FP((a),(b))) = (char)(c))
- #define peek(a,b) (*((int far*)MK_FP((a),(b))))
- #define peekb(a,b) (*((char far*)MK_FP((a),(b))))
- #define findfirst(p,f,a) _dos_findfirst(p,a,f)
- #define findnext(f) _dos_findnext(f)
- #define ffblk find_t
- #define ff_name name
- #define ff_fsize size
- #define ff_attrib attrib
- #define fnsplit _splitpath
- #define fnmerge _makepath
- #define EXTENSION 2
- #define FILENAME 4
- #define DIRECTORY 8
- #define DRIVE 16
- #define MAXPATH 80
- #define MAXDRIVE 3
- #define MAXDIR 66
- #define MAXFILE 9
- #define MAXEXT 5
- #define setdisk(d) _dos_setdrive((d)+1, NULL)
- #define bioskey _bios_keybrd
- #define keyhit kbhit
- #endif
- #endif